Time-recursive lattice structure for IFFT in DMT application

ABSTRACT

The present invention may significantly reduce the number of iteration of the time recursive IFFT structure. First, the real and imaginary part of the input signal are modified based on the symmetric and anti-symmetric. Then, they are mixed together by an adder and fed into the lattice module. Next, an IFFT is performed on the modified input data sequence to generate a transformed sequence. Through the symmetric and anti-symmetric properties, the redundant terms may be eliminated.

FIELD OF THE INVENTION

[0001] The present invention relates to the Discrete Multitone (DMT) technology and, more particularly, to the Inverse Fast Fourier Transform (IFFT), the modulation kernel. By exploiting the symmetric/anti-symmetric properties of the input sequences, we add a new pre-processing scheme to further reduce the computational and the hardware complexity of the IFFT.

BACKGROUND OF THE INVENTION

[0002] Orthogonal transforms and transformation properties are extraordinarily useful in solving new technological problems. Such transforms permit analysis of most signals given some knowledge of its constituent parts. The Fourier transformation in particular has become a powerful tool in increasingly diverse fields including linear systems, communications systems, image processing applications, etc.

[0003] The discrete Fourier transformation (DFT) is the counterpart of the Fourier transformation in the discrete time domain. In general, the DET may be defined as follows: $\begin{matrix} {{{X(k)} = {\sum\limits_{n = 0}^{N - 1}\quad {{x(n)}W_{N}^{kn}}}},\quad {k = 0},1,\ldots \quad,{N - 1}} & (1) \end{matrix}$

[0004] and the inverse DFT (IDFT) is expressed as: $\begin{matrix} {{{x(n)} = {{\frac{1}{N}{\sum\limits_{k = 0}^{N - 1}\quad {{X(k)}W_{N}^{- {kn}}\quad n}}} = 0}},1,\ldots \quad,{N - 1}} & (2) \\ {{{where}\quad W_{n}} = ^{{- j}\quad 2\quad {\pi/N}}} & (3) \end{matrix}$

[0005] In equations (1) and (2), N is the amount of the sample, x(n) is the sample value in the time domain, and X(k) is the sample value in the frequency domain.

[0006] Direct calculation of the DFT and the IDFT is complex. It requires N² multiplications and N(N−1) additions. Such computational may reduce signal processing speed, increased power consumption, and higher expense. One important tool in modern digital signal processing applications that helps to reduce that overhead is the Fast Fourier Transformation (FFT). By introducing the concept of divide-and-conquer, both the numbers of multiplication and addition are reduced to Nlog₂N

[0007] In Discrete Multitone (DMT)-based ADSL system, a 512-point IFFT/FFT module is required to perform the modulation/demodulation kernel. At the transmitter side of the DMT system, to ensure the IFFT generates only real-valued outputs, the inputs of the IFFT have the constraint

X(k)=X*(2N−k) for k=0, 1, . . . , N−1  (4)

[0008] where N 256 and

X(k)≡X _(r)(k)+j·X _(i)(k)  (5)

[0009] are encoded complex symbols with X(0)=X(N)=0. Here, X_(r)(k) and X_(i)(k) indicate the real part and imaginary part of X(k) respectively. As defined $\begin{matrix} {{{x(n)} = {{\frac{1}{2N}{\sum\limits_{k = 0}^{{2N} - 1}\quad {{X(k)}W_{2N}^{- {kn}}\quad {for}\quad n}}} = 0}},1,\ldots \quad,{N - 1}} & (6) \end{matrix}$

[0010] in equation (2), the IDFT of a 2N samples sequence is where, in accordance with the equation (3) $\begin{matrix} {{W_{2N}^{- {nk}} \equiv ^{j\quad 2\pi \quad {{nk}/2}N}} = {{\cos \frac{2\pi \quad {nk}}{2N}} + {j\quad \sin \frac{2\pi \quad {nk}}{2N}}}} & (7) \end{matrix}$

[0011] In accordance with U.S. Pat. No. 6,157,938, the equation (6) is decomposed by the first half and the second half by decomposing the index k, and using the facts that X(0)=X(N)=0. Therefore, the equation (6) becomes $\begin{matrix} {{x(n)} = {\frac{1}{2N}\left\lbrack {{\sum\limits_{k = 0}^{N - 1}\quad {{X(k)}W_{2N}^{- {kn}}}} + {\sum\limits_{k = N}^{{2N} - 1}\quad {{X(k)}W_{2N}^{- {nk}}}}} \right\rbrack}} & (8) \end{matrix}$

[0012] Next, by applying the constraint of equation (4) and substituting equations (5) and (7) into (8), we can simplify equation (9) as follows: $\begin{matrix} \begin{matrix} {{x(n)} = {\frac{1}{2N} \cdot {2\left\lbrack {{\sum\limits_{k = 0}^{N - 1}\quad {{X_{r}(k)}\cos \frac{2\pi \quad {nk}}{2N}}} - {\sum\limits_{k = 0}^{N - 1}\quad {{X_{i}(k)}\sin \frac{2\pi \quad {nk}}{2N}}}} \right\rbrack}}} \\ {{= {\frac{1}{N}\left\lbrack {{{MDCT}_{r}(n)} - {{MDST}_{i}(n)}} \right\rbrack}}} \\ {{{{{for}\quad n} = 0},1,\ldots \quad,{{2N} - 1}}} \end{matrix} & (9) \\ {{Where},} & \quad \\ {\quad \begin{matrix} {{{MDCT}_{r}(n)} = {\sum\limits_{k = 0}^{N - 1}\quad {{X_{r}(k)}\cos \frac{2\pi \quad {nk}}{2N}}}} \\ {{{MDST}_{i}(n)} = {\sum\limits_{k = 0}^{N - 1}\quad {{X_{i}(k)}\sin \frac{2\pi \quad {nk}}{2N}}}} \end{matrix}} & (10) \end{matrix}$

[0013] The equation (9) Fourier Transformation calculation includes two parts, the first term is Modified Discrete Cosine Transformation (MDCT) and the second term is Modified Discrete Sine Transformation (MDST). We use subscripts r and i to indicate that the operations are performed on the real and imaginary parts of input symbol X(k), respectively. Note that the MDCT_(r)(n) and MDST_(i)(n) involve only real-valued operators. Furthermore, from equation (10) it can be shown that $\begin{matrix} {{{{MDCT}_{r}(n)} = {{MDCT}_{r}\left( {{2N} - n} \right)}}{{{{MDST}_{i}(n)} = {{{- {{MDST}_{i}\left( {{2N} - n} \right)}}\quad {for}\quad n} = 0}},1,\ldots \quad,{{2N} - 1}}} & (11) \end{matrix}$

[0014] Consequently, calculation of equation (9) can be focused on the calculations of MDCT_(r)(n) function and MDST_(i)(n) function for n=0, 1, . . . , N−1. Then the calculations of the MDCT_(r)(n) function and the MDST_(i)(n) function for n=N+1, . . . , 2N−1 are expanded based upon equation (11). In this manner, this simple relationship can save an additional 50% hardware/software complexity.

[0015] In U.S. Pat. No. 6,157,938, a time-recursive FFT architecture is provided. The modulation kernels of equation (9) are mapped to the VLSI architectures based on time-recursive lattice structure as shown in FIG. 1. As the shown of the FIG. 1, the input data are separated into two phases, the real parts X_(r)(k) and the imaginary parts X_(i)(k) where k=0, 1, . . . , N−1. The real parts X_(r)(k), first phase, are first fed to the module. After N iterations, the MDCT_(r)(n) is obtained at upper output. The imaginary parts X_(i)(k), second phase, are then fed to the lattice. Similarly, after N iterations, the MDST_(i)(n) is obtained at lower output. Then, the MDCT_(r)(n) and the MDST_(i)(n) are combined together to obtain the IFFT answer of a 2N samples sequence by the accumulators in post-processing circuit. The overall architecture disclosed by U.S. Pat. No. 6,157,938 is illustrated in the FIG. 2.

[0016] However, in FIG. 2, the input data are decomposed into real part X_(r)(k) and imaginary part X_(i)(k) and they are fed into the modules in two different phases. The real part X_(r)(k) and imaginary part X_(i)(k) respectively require N iterations to get the MDCT_(r)(n) and the MDST_(i)(n). Namely, 2N iterations are required to obtain the final results x(n), which results in extra N-cycle latency in practical implementations. Thus, there is an ongoing need to reduce the number of IFFT computations, and in particular the number of complex multiplications, that must be performed in order to more efficiently compute the IFFT.

SUMMARY OF THE INVENTION

[0017] The present invention meets this need and significantly reduces the number of complex computations that must be performed in computing the IFFT of real value sequences. The computational reduction increases signal processing speed and decreases power consumption, both of which are highly desirable in virtually every IFFT application. The present invention achieves these goals by taking advantage of various symmetries and regularities of processed data sequences.

[0018] The main purpose of the present invention is to provide a novel pre-processing scheme to modify the IFFT structure. By exploiting the symmetric and anti-symmetric properties of the input sequences, it can eliminate the redundant output from the lattice modules, and the required iteration number can be halved. The present invention may reduce the computational complexity and save the total hardware complexity.

[0019] In accordance with the present invention, an input data sequence is modified by exploiting the symmetric and anti-symmetric properties in order to eliminate the redundant output from the lattice modules. Then, an IFFT is performed on the modified input data sequence to generate a transformed sequence.

[0020] To achieve the foregoing objects, reducing the total iteration number of the IFFT structure, first using the symmetric and anti-symmetric properties to modify the real and imaginary part of the input signal and then mixing them together by an adder and feeding the results into the lattice module. Through the symmetric and anti-symmetric properties, the redundant terms may be eliminated. Because the real and imaginary part are mixed together for feeding into the lattice modules, only N iterations are required to obtain the final result, which reduces power consumption. On the other hand, the expanding circuit of the present invention does not include the multiplexers; therefore, it may reduce the complexity of the circuit design.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The objects, features and advantages of this invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings in which:

[0022]FIG. 1 is a detailed circuit diagram showing a detailed circuit diagram of the lattice modules for generation of the MDCT_(r)(n) and the MDST_(i)(n) of the prior art;

[0023]FIG. 2 is a diagram showing the overall structure of an IFFT module of the prior art;

[0024]FIG. 3 shows a cos(2πnk/2N) diagram when n is odd in accordance with the present invention and the transverse axle represents the k value;

[0025]FIG. 4 shows a cos(2πnk/2N) diagram when n is even in accordance with the present invention and the transverse axle represents the k value;

[0026]FIG. 5 shows a sin(2πnk/2N) diagram when n is odd in accordance with the present invention and the transverse axle represents the k value;

[0027]FIG. 6 shows a sin(2πnk/2N) diagram when n is even in accordance with the present invention and the transverse axle represents the k value;

[0028]FIG. 7 is a detailed circuit diagram showing a detailed circuit diagram of the lattice modules for generation of the 2MDCT_(r)(n) and the 2MDST_(i)(n) in accordance with the present invention;

[0029]FIG. 8 is a diagram showing the overall structure of an IFFT module in accordance with the present invention;

[0030]FIG. 9 is the SQNR performances of the prior art structure shown in FIG. 1;

[0031]FIG. 10 is the SQNR performances of the present invention structure shown in FIG. 7; and

[0032]FIG. 11 is the internal wordlength of the lattice module.

DESCRIPTION OF THE PREFERRED EMBODIMENT

[0033] Without limiting the spirit and scope of the present invention, the method proposed in the present invention is illustrated with one preferred embodiment to provide a novel pre-processing scheme to modify the input sequences. By exploiting the symmetric and anti-symmetric properties of the input sequences, it can eliminate the redundant output from the lattice modules, and the required iteration number can be halved. Skilled artisans, upon acknowledging the embodiments, can apply the method according to the present invention to time-recursive IFFT structure to reduce the operation frequency. Realizing the present invention method in a circuit may reduce the power consumption and the complexity of the circuit. The application of the present invention is not limited by the following embodiment.

[0034] A preferred embodiment of the present invention provides efficient or simplified IFFT/FFT computations by taking advantage of Hermitian symmetry. In the formal definition of the IFFT/FFT, both x(n) and X(k) are assumed to be complex. If X(k) is an N-point Hermitian symmetric series, the Fourier transformation of X(k) is a real sequence, x(n). Regarding subscripts, the index for frequency sequences is k, sequences in the time domain are indexed by n.

[0035] In accordance with the preferred embodiment of the present invention, an assumption is made that a 512-point IFFT/FFT module is required to perform the modulation/demodulation kernel. If X(k) is a 2N (N=256) point Hermitian symmetric series, the inputs of the IFFT have the constraint

X(k)=X*(2N−k) for k=0, 1, . . . , N−1

[0036] where N=256 and

X(k)≡X _(r)(k)+j·X _(i)(k)

[0037] wherein X(0)=X(N)=0. Here, X_(r)(k) and x_(i)(k) indicate the real part and imaginary part of X(k) respectively. As defined in equation (2), the IDFT of a 2N samples sequence is ${{x(n)} = {{\frac{1}{2N}{\sum\limits_{k = 0}^{{2N} - 1}\quad {{X(k)}W_{2N}^{- {kn}}\quad {for}\quad n}}} = 0}},1,\ldots \quad,{{2N} - 1}$ wherein ${W_{2N}^{- {nk}} \equiv ^{j\quad 2\pi \quad {{nk}/2}N}} = {{\cos \frac{2\pi \quad {nk}}{2N}} + {j\quad \sin \frac{2\pi \quad {nk}}{2N}}}$

[0038] By decomposing k into the first half and the second half and using the facts that X(0)=X(N)=0, $\begin{matrix} \begin{matrix} {{x(n)} = {\frac{1}{2N}\left\lbrack {{\sum\limits_{k = 1}^{N - 1}\quad {{X(k)}W_{2N}^{- {nk}}}} + {\sum\limits_{k = 1}^{{2N} - 1}\quad {{X(k)}W_{2N}^{- {nk}}}}} \right\rbrack}} \\ {{= {\frac{1}{2N}\left\lbrack {{\sum\limits_{k = 1}^{N - 1}\quad {{X(k)}W_{2N}^{- {nk}}}} + {\sum\limits_{k = 1}^{N - 1}\quad {{X\left( {{2N} - k} \right)}W_{2N}^{- {n{({{2N} - k})}}}}}} \right\rbrack}}} \end{matrix} \\ {Wherein} \\ {\begin{matrix} {W_{2N}^{- {n{({{2N} - k})}}} \equiv {W_{2N}^{- {n{({2N})}}} \cdot W_{2N}^{nk}} \equiv {^{j\quad 2\pi \quad {{n2N}/2}N} \cdot W_{2N}^{nk}}} \\ {{= {1 \cdot W_{2N}^{nk}}}} \\ {{= W_{2N}^{nk}}} \end{matrix}\quad {{{and}\quad {X\left( {{2N} - k} \right)}} = {X*(k)}}} \\ {{Therefore},} \\ {{x(n)} = {\frac{1}{2N}\left\lbrack {{\sum\limits_{k = 1}^{N - 1}\quad {{X(k)}W_{2N}^{- {kn}}}} + {\sum\limits_{k = 1}^{N - 1}\quad {X*(k)W_{2N}^{nk}}}} \right\rbrack}} \\ {{Accordingly},} \\ \begin{matrix} {{X(k)} \equiv {{X_{r}(k)} + {j \cdot {X_{i}(k)}}}} \\ {{X*(k)} \equiv {{X_{r}(k)} - {j \cdot {X_{i}(k)}}}} \end{matrix} \\ {{Therefore},} \\ \begin{matrix} {{x(n)} = {\frac{1}{2N}\left\lbrack {{\sum\limits_{k = 1}^{N - 1}\quad {{X(k)}W_{2N}^{- {kn}}}} + {\sum\limits_{k = 1}^{N - 1}\quad {X*(k)W_{2N}^{nk}}}} \right\rbrack}} \\ {{= {\frac{1}{N}{\sum\limits_{k = 1}^{N - 1}\left\lbrack \quad {{{X_{r}(k)}\cos \frac{2\pi \quad {nk}}{2N}} - {\sum\limits_{k = 1}^{N - 1}\quad {{X_{i}(k)}\sin \frac{2\pi \quad {nk}}{2N}}}} \right\rbrack}}}} \\ {{{= {{\frac{1}{N}{\sum\limits_{k = 1}^{N - 1}{\left\lbrack {{{MDCT}_{r}(n)} - {{MDST}_{i}(n)}} \right\rbrack \quad {for}\quad n}}} = 0}},1,\ldots \quad,{{2N} - 1}}} \end{matrix} \\ {wherein} \\ \begin{matrix} {{{MDCT}_{r}(n)} = {\sum\limits_{k = 1}^{N - 1}\quad {{X_{r}(k)}\cos \frac{2\pi \quad {nk}}{2N}}}} \\ {{{MDST}_{i}(n)} = {\sum\limits_{k = 1}^{N - 1}\quad {{X_{i}(k)}\sin \frac{2\pi \quad {nk}}{2N}}}} \end{matrix} \end{matrix}$

[0039] From the above equation, it can be determined that inverse Fast Fourier Transformation calculations include two-part operations of real numbers, where the first part is a discrete cosine transform-like operation with X_(r)(k) (wherein k=0, 1, . . . , N−1) as input, whereas the second part is a discrete sine transform-like operation with X_(i)(k) (wherein k=0, 1, . . . , N−1) as input. The subscripts r and i indicate that the operations are performed on the real and imaginary parts of input symbol X(k), respectively. For simplicity, the first part of above equation is defined as a modified discrete cosine transformation (MDCT_(r)) function and the second part as a modified sine transformation (MDST_(i)) function.

[0040] However, in accordance with the prior art, the inverse Fast Fourier Transformation calculations may be determined by calculating the MDCT_(r)(n) function and MDST_(i)(n) function where n=0, 1, . . . , N−1. Namely, 2N iterations are required to obtain the final inverse Fast Fourier Transformation calculations results, which result in extra N-cycle latency in practical implementations.

[0041] Therefore, to reduce the total iteration number of the inverse Fast Fourier Transformation calculations, the X_(r)(k) and X_(i)(k) are mixed together to be fed into the lattice module. Since the lattice module is a linear system, based on superposition theory, the superposition input obtains the superposition outputs after N iterations. Because the imaginary parts are input together, the upper output of the lattice module includes the desired value MDCT_(r)(n) and the additional value MDCT_(i)(n). Similarly, because the real parts are input together, the lower output of the lattice module includes the desired value MDST_(i)(n) and the additional value named MDST_(r)(n).

[0042] In other words, the upper output is as follows:

the upper output=MDCT _(r)(n)+MDCT _(i)(n)

[0043] And the lower output is as follows:

the lowwer output=MDST _(r)(n)+MDST _(i)(n)

[0044] Note that the terms MDCT_(i)(n), and MDST_(r)(n) are not the desired results. They are mixed with the desired part.

[0045] The considered reduction in the number of the iterations is achieved by deleting the undesired part, MDCT_(i)(n) and MDST_(r)(n). First, in accordance with the relationship is shown in the follows. $\begin{matrix} {{{MDCT}_{r}(n)} = {\sum\limits_{k = 0}^{N - 1}\quad {{X_{r}(k)}\cos \frac{2\pi \quad {nk}}{2N}}}} \\ {{{MDST}_{i}(n)} = {\sum\limits_{k = 0}^{N - 1}\quad {{X_{i}(k)}\sin \frac{2\pi \quad {nk}}{2N}}}} \end{matrix}$

[0046] The sequence cos(2πnk/2N and the sequence sin(2πnk/2N) exhibits symmetric and anti-symmetric characteristics in accordance with the “n” value, which is odd or even.

[0047] When n is odd, assuming N=64, n=1 ${\cos \frac{2\pi \quad {nk}}{2N}} = {\cos \frac{\pi \cdot 1 \cdot k}{64}}$

[0048]FIG. 3 shows the diagram of the above equation, wherein the transverse axle represents the k value. FIG. 3 shows an anti-symmetrical diagram relative to the k=32 point. Namely, the cos(2πnκ/2N) will be an anti-symmetrical sequence when n is odd.

[0049] On the other hand, when n is even, assuming N=64, n=2 ${\cos \frac{2\pi \quad {nk}}{2N}} = {\cos \frac{\pi \cdot 2 \cdot k}{64}}$

[0050]FIG. 4 shows the diagram of the above equation, wherein the transverse axle represents the k value. FIG. 4 shows a symmetrical diagram relative to the k=32 point. Namely, the cos(2πnk/2N) will be a symmetrical sequence when n is even.

[0051] Consider a symmetric sequence; Y_(s)(k), the product Y_(s)(k) with the anti-symmetrical sequence cos(2πnk/2N) will form a new anti-symmetric sequence, Y_(s)(k)cos(2πnk/2N). The summation of the product will be zero when n is odd. ${\sum{{Y_{s}(K)} \cdot {\cos \left( \frac{2\pi \quad {nk}}{2N} \right)}}} = {{0\quad n} = {odd}}$

[0052] On the other hand, consider an anti-symmetric sequence, Y_(a)(k); the product Y_(a)(k) with the symmetries sequence cos(2πnk/2N) will form a new anti-symmetric sequence, Y_(a)(k)cos(2πnk/2N). The summation of the product will be zero when n is even. ${\sum{{Y_{a}(K)} \cdot {\cos \left( \frac{2\pi \quad {nk}}{2N} \right)}}} = {{0\quad n} = {even}}$

[0053] Similarly, the sequence sin(2πnk/2N) also exhibits the symmetric and anti-symmetric characteristic in accordance with the “n” value, which is odd or even.

[0054] When n is odd, assuming N=64, n=1 ${\sin \frac{2\pi \quad {nk}}{2N}} = {\sin \frac{\pi \cdot 1 \cdot k}{64}}$

[0055]FIG. 5 shows the diagram of the above equation, wherein the transverse axle representing the k value. FIG. 5 shows a symmetrical diagram relative to the k-32 point. Namely, the sin(2πnk/2N) will be a symmetrical sequence when n is odd.

[0056] On the other hand, when n is even, assuming N=64, n=2 ${\sin \frac{2\pi \quad {nk}}{2N}} = {\sin \frac{\pi \cdot 2 \cdot k}{64}}$

[0057]FIG. 6 shows the diagram of the above equation, wherein the transverse axle representing the k value. FIG. 6 shows an anti-symmetric diagram relative to the k=32 point. Namely, the sin(2πnk/2N) will be an anti-symmetric sequence when n is even.

[0058] Consider an anti-symmetric sequence, Y_(a)(k), the product Y_(a)(k) with the symmetrical sequence sin(2πnk/2N) forms a new anti-symmetric sequence, Y_(a)(k)sin(2πnk/2N). The summation of the product is zero when n is odd. ${\sum{{Y_{a}(K)} \cdot {\sin \left( \frac{2\pi \quad {nk}}{2N} \right)}}} = {{0\quad n} = {odd}}$

[0059] On the other hand, consider a symmetric sequence; Y_(s)(k), the product Y_(s)(k) with the anti-symmetrical sequence sin(2πnκ/2N) forms a new anti-symmetric sequence, Y_(s)(k)sin(2πnk/2N). The summation of the product is zero when n is even. ${\sum{{Y_{s}(K)} \cdot {\cos \left( \frac{2\pi \quad {nk}}{2N} \right)}}} = {{0\quad n} = {even}}$

[0060] Now, consider the upper output, namely, if the X_(r)(k) and X_(i)(k) are mixed together to be fed into the lattice module, the upper output is as follows: the  upper  output = MDCT_(r)(n) + MDCT_(i)(n) and $\begin{matrix} {{{MDCT}_{r}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{r}(k)}\quad \cos \quad \frac{2\pi \quad {nk}}{2N}}}} \\ {{{MDCT}_{i}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{i}(k)}\quad \cos \quad \frac{2\pi \quad {nk}}{2N}}}} \end{matrix}$

[0061] the lower output is as follows: the  lower  output = MD  S  T_(r)(n) + MD  ST_(i)(n) and $\begin{matrix} {{{MDST}_{r}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{r}(k)}\quad \sin \quad \frac{2\pi \quad {nk}}{2N}}}} \\ {{{MDST}_{i}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{i}(k)}\quad \sin \quad \frac{2\pi \quad {nk}}{2N}}}} \end{matrix}$

[0062] The MDCT_(r)(n) and MDST_(i)(n) are the desired parts and the MDCT_(i)(n) and MDST_(r)(n) should be deleted. Therefore, by changing the X_(i)(k) to an even function or odd function, the MDCT_(i)(n) may be deleted.

[0063] Accordingly, if the input sequence X(k), k=0, 1, . . . N−1, is a random sequence and X_(r)(k) and X_(i)(k) indicate the real part and imaginary parts of X(k). Since any sequence can be decomposed into a symmetric part and anti-symmetric part, we decompose the imaginary part X_(i)(k) according to an identified modification pattern into the following equations:

symmetric signal: X _(is)(k)=X _(i)(k)+X _(i)(N−k)  (i)

anti-symmetric signal: X _(ia)(k)=X _(i)(k)−X _(i)(N−k)  (ii)

[0064] Therefore, for eliminating the redundant term, MDCT_(i)(n), from the upper output, when n is odd, the cos(2πnk/2N) will be an anti-symmetrical sequence. Therefore, the symmetries sequence X_(is)(k) is sent into the module to make the MDCT_(i)(n) zero. On the other hand, when n is even, the cos(2πnk/2N) will be a symmetries sequence. Therefore, the anti-symmetrical sequence X_(ia)(k) is sent into the module to make the MDCT_(i)(n) be zero. However, because the input signal X_(i)(k) is changed, the lower output MDST_(i)(n) will be as follows: $\begin{matrix} {{{When}\quad n\quad {is}\quad {odd}}\quad} \\ \begin{matrix} {{\sum\limits_{k = 0}^{N - 1}\quad {{X_{i\quad s}(k)}\sin \frac{2\quad \pi \quad {nk}}{2\quad N}}} = {\sum\limits_{k = 0}^{N - 1}{{\left\lbrack \quad {{X_{i\quad}(k)} + {X_{i}\left( {N - k} \right)}} \right\rbrack \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{i\quad}(k)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{i}\left( {N - k} \right)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{i\quad}(k)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{i}\left( {N - k} \right)} \cdot \sin}\frac{2\quad \pi \quad {n\left( {N - k} \right)}}{2\quad N}}}}} \\ {= {2\quad {{MDST}_{i}(n)}}} \end{matrix} \\ {{{When}\quad n\quad {is}\quad {even}}\quad} \\ \begin{matrix} {{\sum\limits_{k = 0}^{N - 1}\quad {{X_{i\quad a}(k)}\sin \frac{2\quad \pi \quad {nk}}{2\quad N}}} = {\sum\limits_{k = 0}^{N - 1}{{\left\lbrack \quad {{X_{i\quad}(k)} - {X_{i}\left( {N - k} \right)}} \right\rbrack \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{i\quad}(k)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}} - {\sum\limits_{k = 0}^{N - 1}{{{X_{i}\left( {N - k} \right)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{i\quad}(k)} \cdot \sin}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{i}\left( {N - k} \right)} \cdot \sin}\frac{2\quad \pi \quad {n\left( {N - k} \right)}}{2\quad N}}}}} \\ {= {2\quad {{MDST}_{i}(n)}}} \end{matrix} \end{matrix}$

[0065] The desired result, MDST_(i)(n), is kept. At the same time, the redundant term MDCT_(i)(n) may also be eliminated. Therefore, in accordance with the foregoing description, the input imaginary sequence, X_(i)′(k), is modified according to an identified modification pattern as follows:

X _(i)′(k)=X _(i)(k)+(−1)^(n+1) ·X _(i)(N−k)

[0066] On the other hand, considering the lower output. $\begin{matrix} {{{the}\quad {lower}\quad {output}} = {{{MDST}_{r}(n)} + {{MDST}_{i}(n)}}} \\ {{And}\quad} \\ {{{MDST}_{r}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{r\quad}(k)}\quad \sin \frac{2\quad \pi \quad {nk}}{2\quad N}}}} \\ {{{MDST}_{i}(n)} = {\sum\limits_{k = 0}^{N - 1}{{X_{i\quad}(k)}\quad \sin \frac{2\quad \pi \quad {nk}}{2\quad N}}}} \end{matrix}$

[0067] The MDST_(i)(n) are the desired parts and the MDST_(r)(n) should be deleted. Therefore, by changing the X_(r)(k) to an even function or an odd function, the MDST_(r)(n) may be deleted.

[0068] Similarly, since any sequence can be decomposed into a symmetric part and an anti-symmetric part, we decompose the real X_(r)(k) according to a modification identified pattern into the following:

symmetric signal: X _(rs)(k)=X _(r)(k)+X _(r)(N−k)  (i)

anti-symmetric signal: X _(ra)(k)=X _(r)(k)−X _(r)(N−k)  (ii)

[0069] Therefore, for eliminating the redundant term, MDST_(r)(n), from the lower output, when n is odd, the sin(2πnk/2N) will be a symmetrical sequence. Therefore, the anti-symmetrical sequence X_(ra)(k) is sent into the module to make the MDST_(r)(n) zero. On the other hand, when n is even, the sin(2πnk/2N) will be an anti-symmetrical sequence. Therefore, the symmetrical sequence X_(rs)(k) is sent into the module to make the MDST_(r)(n) zero. However, because the input signal X_(r)(k) is changed, the upper output MDCT_(r)(n) is as follows: $\begin{matrix} {{{When}\quad n\quad {is}\quad {odd}}\quad} \\ \begin{matrix} {{\sum\limits_{k = 0}^{N - 1}\quad {{X_{ra}(k)}\cos \frac{2\quad \pi \quad {nk}}{2\quad N}}} = {\sum\limits_{k = 0}^{N - 1}{{\left\lbrack \quad {{X_{r}(k)} - {X_{r}\left( {N - k} \right)}} \right\rbrack \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{r\quad}(k)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}} - {\sum\limits_{k = 0}^{N - 1}{{{X_{r}\left( {N - k} \right)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{r\quad}(k)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{r}\left( {N - k} \right)} \cdot \cos}\frac{2\quad \pi \quad {n\left( {N - k} \right)}}{2\quad N}}}}} \\ {= {2\quad {{MDCT}_{r}(n)}}} \end{matrix} \\ {{{When}\quad n\quad {is}\quad {even}}\quad} \\ \begin{matrix} {{\sum\limits_{k = 0}^{N - 1}\quad {{X_{rs}(k)}\cos \frac{2\quad \pi \quad {nk}}{2\quad N}}} = {\sum\limits_{k = 0}^{N - 1}{{\left\lbrack \quad {{X_{r\quad}(k)} + {X_{r}\left( {N - k} \right)}} \right\rbrack \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{r\quad}(k)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{r}\left( {N - k} \right)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}}}} \\ {= {{\sum\limits_{k = 0}^{N - 1}{{{X_{r\quad}(k)} \cdot \cos}\frac{2\quad \pi \quad {nk}}{2\quad N}}} + {\sum\limits_{k = 0}^{N - 1}{{{X_{r}\left( {N - k} \right)} \cdot \cos}\frac{2\quad \pi \quad {n\left( {N - k} \right)}}{2\quad N}}}}} \\ {= {2\quad {{MDCT}_{r}(n)}}} \end{matrix} \end{matrix}$

[0070] The desired result, MDCT_(r)(n) is kept. At the same time, the redundant term MDST_(r)(n) may also be eliminated. Therefore, in accordance with the foregoing description, the input real sequence X′_(r)(k), is modified according to the identified modification pattern as follows:

X′ _(r)(k)=X _(r)(k)+(−1)^(n) ·X _(r)(N−k)

[0071] As a result, the real sequence with the imaginary sequence may be added together to feed into the lattice module simultaneously to obtain the correct result. In summary, the generalized input sequence X $\begin{matrix} {{X^{\prime}(k)} = {{X_{r}^{\prime}(k)} + {X_{i}^{\prime}(k)}}} \\ {= {\left\lbrack {{X_{r}(k)} + {\left( {- 1} \right)^{n} \cdot {X_{r}\left( {N - k} \right)}}} \right\rbrack + \left\lbrack {{X_{i}(k)} + {{\left( {- 1} \right)^{n + 1} \cdot X_{i}}\left( {N - k} \right)}} \right\rbrack}} \end{matrix}$

[0072] (k), can be expressed as follows:

[0073] The symmetric/anti-symmetric sequences of input data can be easily generated by a pre-processing module, which consists of some buffers and adders as shown in FIG. 7. In general, this pre-processing module may be moved to previous functional block of DMT system, i.e., the constellation encoder. Usually, the encoder is implemented by a DSP processor that is very efficient for data movement and addition operations. Hence, we can implement the pre-processing module in DSP, which helps to further reduce the hardware complexity.

[0074] The overall inverse Fast Fourier Transformation lattice structure is drawn in FIG. 8 and should be compared with FIG. 2, proposed by U.S. Pat. No. 6,157,938, where the N−1 multiplexers and 2N−2 accumulators are in an expanding circuit and the multiplexers MUX₁ to MUX_(N−1) are for receiving the output data from lattice module IM₁ to IM_(N−1), respectively. For example, the multiplexer MUX₁ receives the output data MDCT(1) and MDST(1) of the lattice module IM₁. Similarly, the multiplexer MUX_(N−1) receives the output data MDCT(N−1) and MDST(N−1) of the lattice module IM_(N−1).

[0075] However, in accordance with the present invention, it is not necessary to use the multiplexers in the expanding circuit because the present invention provides a modified input sequence that can eliminate the redundant output. Reference is again made to FIG. 8, where the expanding circuit only includes 2N−2 adders. The adders A₁ to A_(2N−2) are for receiving the output data from lattice module IM₁ to IM_(N−1), respectively. For example, the adder A₁ receives the output data 2MDCT(1) and 2MDST(1) of the lattice module IM₁. Similarly, the adder A_(2N−1) receives the output data 2MDCT_(r)(N−1) and 2MDST_(i)(N−1) of the lattice module IM_(N−1). In accordance the following equation: ${x(1)} = {\frac{1}{2N}\left\lbrack {{2\quad {{MDCT}_{r}(1)}} - {2\quad {{MDST}_{i}(1)}}} \right\rbrack}$

[0076] Therefore, the output 2MDST_(i)(1) is multiplied by (−1). Furthermore, since the output of the lattice module further includes a multiplication of 2, the data output from the expanding circuit is shifted right by log₂(2N) bits by the corresponding hard-wiring right shifters for outputting data x(0), x(1), x(2), . . . , x(2N−1).

[0077] On the other hand, the MDCT function and MDST function demonstrate the following characteristic:

MDCT(k)=MDCT(2N−k)

MDST(k)=−MDST(2N−k)

[0078] Therefore, the expanding circuit may extend the calculations of MDCT(k) and MDST(k) in k=N, N+1, 2N−1. The following is an example. $\begin{matrix} {{x\left( {{2N} - 1} \right)} = {{{MDCT}\left( {{2N} - 1} \right)} - {{MDST}\left( {{2N} - 1} \right)}}} \\ {= {{{MDCT}(1)} + {{MDST}(1)}}} \end{matrix}$

[0079] The two outputs of lattice module IM₁ may also get the x(2N−1) result. In other words, the adder A₂ receives the output data 2MDCT(1) and 2MDST(1) of the lattice module IM₁ and connects to the corresponding hard-wiring right shifter to get the output x(2N−1).

[0080] Moreover, in accordance with the following equation:

x(0)=MDCT(0)−MDST(0)=MDCT(0)

x(N)=MDCT(N)−MDST(N)=(−1)^(n) MDCT(N)

[0081] Therefore, x(0) and x(N) may be outputted respectively from the two terminals of the special module SC1.

[0082] In the following, the present invention architecture of Fast Fourier Transformation is compared with the prior art of U.S. Pat. No. 6,157,938. The hardware complexity of hardware is shown in Table 1, where the halved iteration number is the major improvement in this present invention. Under the same symbol rate, the power consumption of the IFFT can be reduced due to the halved processing speed. Besides, the numbers of multiplexer and register are also reduced after the modification. TABLE 1 Original structure Proposed (US 6157938) structure Multiplier 4N-4 4N-4 Adder 5N-3 5N-3 Register 4N-4 2N-2 Others N-1 MUXs — Iteration 2N N

[0083] A 2N-point Fast Fourier Transformation realized with a prior art structure includes one special module (SC1) and the (N−1) lattice modules IM₁ to IM_(N−1). The special module SC1 includes two adders and each of the (N−1) lattice modules includes four real multipliers, three real adders and two registers. Therefore, the total (3N−1) adders, (4N−4) multipliers and (2N−2) registers are required for the (N−1) lattice modules and SC1. Besides, the expanding circuit includes additional 2(N−1) adders, (N−1) multiplexers and 2(N−1) registers. That is, the original structure requires 4(N−1) real multipliers and [5(N−1)+2] real adders in total.

[0084] On the other hand, the structure of the present invention also includes one special module (SC1) and the (N−1) lattice modules IM₁ to IM_(N−1). The main different between the prior art and the present invention is the expanding circuit. It only requires (2N−2) adders. The multiplexers and the registers are not necessary. Therefore, the present invention may reduce the hardware complexity of the expanding circuit. More importantly, the iteration may also be reduced from 2N to N.

[0085]FIG. 9 and FIG. 10 are the SQNR performances of the prior art structure (U.S. Pat. No. 6,157,938) and the present invention structure, respectively. The internal wordlength was chosen as shown in FIG. 11. Two 16-bit adders and four 16-bit multipliers were adopted in the simulation. From the two drawings, FIG. 9 and FIG. 10, under the same wordlength assignment, the present invention architecture performs as well as the prior art structure. Most channels result in a SQNR more than 40 dB, and the overall averaged SQNR value is 51.25 dB, which is almost identical to the value of the prior art structure (51.07 dB).

[0086] By utilizing the symmetric/anti-symmetric property of the data sequence, a more effective lattice structure for an IFFT module in a DMT transmitter is proposed. The iteration number has been halved such that the lattice module can work at a half clock rate. Hence, the power consumption can be reduced. On the other hand, the hardware in the expanding circuit has also been reduced. The sampling decimator is saved and routing becomes even simpler, too. These features make the proposed scheme a good candidate for cost-efficient IFFT implementation in the DMT-based ADSL system.

[0087] Although the present invention has been described in its preferred embodiment, it is not intended to limit the invention to the precise embodiment disclosed herein. Those who are skilled in this technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents. 

What is claimed is:
 1. A method for efficiently processing an Inverse Fast Fourier Transformation for a 2N point original input data sequence X(k), wherein said original input data sequence includes a real part X_(r)(k) and an imaginary part X_(i)(k) (k=0, . . . , N−1), comprising the steps of: identifying a first modification pattern; modifying said real part of original input data sequence based on said first modification pattern to form a modified real part X′_(r)(k); identifying a second modification pattern; modifying said imaginary part of original input data sequence based on said second modification pattern to form a modified imaginary part X_(i)′(k); combing said modified real part X_(r)′(k) and modified imaginary part X_(i)′(k) together to form a modified input data X′(k); and inputting said modified input data X′(k) to an Inverse Fast Fourier transformation (IFFT) module to generate an output sequence.
 2. The method in claim 1, wherein said first and second modification pattern is formed according to symmetrical and anti-symmetrical theory.
 3. The method in claim 1, wherein modifying said real part from X_(r)(k) to X_(r)′(k) is to make an equation as follows equal to zero. ${{\sum\limits_{k = 0}^{N - 1}{{{X_{r}^{\prime}(k)} \cdot \sin}\frac{\pi \quad n\quad k}{N}}} = {{0\quad n} = {0,1,\quad \ldots}}}\quad,{N - 1}$


4. The method in claim 1, wherein modifying said imaginary part from X_(i)(k) to X_(i)′(k) is to make an equation as follows equal to zero. ${{\sum\limits_{k = 0}^{N - 1}{{{X_{i}^{\prime}(k)} \cdot \cos}\frac{\pi \quad n\quad k}{N}}} = {{0\quad n} = {0,1,\quad \ldots}}}\quad,{N - 1}$


5. The method in claim 1, wherein said modified real part X_(r)′(k) is equal an equation as follows: X _(r)(k)+(−1)^(n) X _(r)(N−k) n=0, 1, . . . ., N−1
 6. The method in claim 1, wherein said modified imaginary part X_(i)′(k) is equal to an equation as follows: X _(i)(k)+(−1)^(n+1) ·X _(i)(N−k) n=0, 1, . . . , N−1
 7. The method in claim 1, wherein said original input data sequence X(k) is a random sequence.
 8. An apparatus for efficiently processing an Inverse Fast Fourier Transformation for a 2N point original input data sequence X(k), wherein said original input data sequence includes a real part X_(r)(k) and an imaginary part X_(i)(k) (k=0, . . . , N−1), comprising: a modifying device for modifying said real part and imaginary part of original input data sequence according to a first and second identified modification pattern to form a modified input data X′(k); and an Inverse Fast Fourier transformation (IFFT) module for processing the Inverse Fast Fourier transformation (IFFT) for said modified input data X′(k), wherein said Inverse Fast Fourier transformation (IFFT) module further comprises: a plurality of lattice modules, said each lattice module receiving said modified input data X′(k) to generate the first and the second output signal; a plurality of calculating units, wherein any two calculating units are coupled to one lattice module for receiving the first and the second output signal of said lattice module, and one of said two calculating units for generating the difference of said first and second output signal and the other for generating the sum of said first and second output signal; and a plurality of shifter, wherein each shifter is coupled to one of said calculating units for receiving the output signal to shift right by log₂(2N) bits of said received output signal.
 9. The apparatus in claim 8, wherein said first and second modification pattern is formed according to symmetrical and anti-symmetrical theory.
 10. The apparatus in claim 8, wherein modifying said real part is to make an equation as follows equal to zero. ${{\sum\limits_{k = 0}^{N - 1}{{{X_{r}^{\prime}(k)} \cdot \sin}\frac{n\quad \pi \quad k}{N}}} = {{0\quad n} = {0,1,\quad \ldots}}}\quad,{N - 1}$


11. The apparatus in claim 8, wherein modifying said imaginary part is to make an equation as follows equal to zero. ${{\sum\limits_{k = 0}^{N - 1}{{{X_{i}^{\prime}(k)} \cdot \cos}\frac{n\quad \pi \quad k}{N}}} = {{0\quad n} = {0,1,\quad \ldots}}}\quad,{N - 1}$


12. The apparatus in claim 8, wherein said modified real part X_(r)′(k) is equal to an equation as follows: X _(r)(k)+(−1)^(n) ·X _(r)(N−k) n=0, 1, . . . , N−1
 13. The apparatus in claim 8, wherein said modified imaginary part X_(i)′(k) is equal to an equation as follows: X _(i)(k)+(−1)^(n+1) ·X _(i)(N−k) n=0, 1, . . . , N−1
 14. The apparatus in claim 8, wherein said original input data sequence X(k) is a random sequence.
 15. A method for efficiently processing an Inverse Fast Fourier transforming for an 2N point original input data sequence X(k), wherein said original input data sequence includes a real part X_(r)(k) and an imaginary part X_(i)(k) (k=0, . . . , N−1), comprising the steps of: modifying said real part of original input data sequence to X_(r)(k)+(−1)^(n)·X_(r)(N−k) and n=0, 1, . . . , N−1; modifying said imaginary part of original input data sequence to X_(i)(k)+(−1)^(n+1)·X_(i)(N−k) and n=0, 1, . . . , N−1; combing said modified real part and modified imaginary part together to form modified input data; and inputting said modified input data to an Inverse Fast Fourier transformation (IFFT) module to generate an output sequence.
 16. The method in claim 15, wherein said original input data sequence X(k) is a random sequence.
 17. The method in claim 15, wherein said inputting said modified input data to generate an output sequence further comprises: using a plurality of lattice modules to receive said modified input data wherein each of said lattice modules generates the first and the second output signal; generating the difference signal of said first and second output signal; generating the sum signal of said first and second output signal; shifting right by log₂(2N) bits of said difference signal; and shifting right by log₂(2N) bits of said sum signal.
 18. The method in claim 15, wherein said shifting right by log₂(2N) bits may use the right shifter. 